import { RouteLocationNormalized, NavigationGuardNext, RouteLocationRaw } from "vue-router";
import { appState, appAction, getUserInfo } from "@/store/app";

/**
 * 这个版本是简化过得，
 * 因为PC版本中没有微信授权，完全是自己控制的
 * 所以可以简写，完全没有必要写的过于复杂
 */
export default {
  //路由前置守卫
  async beforeEach(to: RouteLocationNormalized, from: RouteLocationNormalized, next: NavigationGuardNext) {
    //创建页面唯一值
    appAction.resetPageuuid();

    if (!appState.token && to.name !== "Login") {
      //没有token就跳转到登录页面
      next({
        name: "Login"
      });
      return;
    }

    if (to.path === "/") {
      // 如果页面不存在则跳到应用首页
      next({
        name: "AppHome"
      });
      return;
    }

    if (to.matched.length === 0) {
      //如果页面不存在则跳到404页面
      next({
        name: "PageNone"
      });
      return;
    }

    if (to.name == "AppHome") {
      //获取用户信息
      await getUserInfo();
    }

    next();
  },

  //路由后置守卫
  afterEach(to: RouteLocationNormalized, from: RouteLocationNormalized) {
  }
};
